package com.dragon.utils;

import java.io.*;

/**
 * IO工具类,读写文件
 *
 * @author: dragon
 * @version: V1.0.0-RELEASE
 * @date: 2019/03/30 20:36
 */

public class IOUtils {

    /**
     * 将源字符串写入到指定的文件
     *
     * @param file   待写入指定的文件对象
     * @param source 源字符串
     * @return void
     * @author dragon
     * @version V1.0.0-RELEASE
     * @date 2019/03/30
     */
    public static void writeFile(File file, String source) throws IOException {
        // 创建输出流
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
        // 将文件写入到高效输出流
        bos.write(source.getBytes());
        // 刷新输出流
        bos.flush();
        // 关闭输出流
        bos.close();
    }

    /**
     * 读取指定文件
     *
     * @param file 源文件对象
     * @return java.lang.String
     * @author dragon
     * @version V1.0.0-RELEASE
     * @date 2019/03/30
     */
    public static String readFile(File file) throws IOException {
        // 创建高效输入流
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
        // 创建字符串缓冲对象
        StringBuilder sb = new StringBuilder();
        // 创建小数组
        byte[] bytes = new byte[1024 * 2];
        // 定义读取的缓冲字节总数
        int length;
        // 当读取缓冲字节总数不为 -1 时
        while ((length = bis.read(bytes)) != -1) {
            String s = new String(bytes, 0, length);
            sb.append(s);
        }
        // 关闭输入流
        bis.close();

        return sb.toString();
    }
}
